package com.hrbxlh.dao;


import java.util.List;
import java.util.Map;

import org.springframework.stereotype.Repository;

/**
* -------------------------------------------------------
* Copyright (c) 2017, 鑫联华信息科技股份有限公司
* All rights reserved.
* FileName：HomeworkTestDao.java
* Description：作业试验HomeworkTestDao类,负责查询作业试验信息
* History：
* Date           Author               Desc
* 2017.4.5		  xzx                 建立
* -------------------------------------------------------
*/

@Repository
public interface HomeworkTestDao {

	/**
	 * @description 查询某教师教的班级
	 * @param Map<String,Object> paramMap
	 * @return List classId班级id,className班级名
	 * @throws Exception
	 */
	public List<Map<String,Object>> getTeaTeachClass(Map<String, Object> paramMap) throws Exception;
	
	/**
	 * @description 查询某教师教的课程对应的班级的作业列表
	 * @param Map<String,Object> paramMap
	 * @return List 
	 * @throws Exception
	 */
	public List<Map<String,Object>> getTeaHomeworkList(Map<String, Object> paramMap) throws Exception;
	
	/**
	 * @description 查询某教师教的课程对应的班级的实验列表
	 * @param Map<String,Object> paramMap
	 * @return List 
	 * @throws Exception
	 */
	public List<Map<String,Object>> getTeaTestList(Map<String, Object> paramMap) throws Exception;
	
	/**
	 * @description 查询某教师教的课程的某班级的作业详情情况（作业管理列表内页）
	 * @param Map<String,Object> classId  courseId  chapterId
	 * @return List 
	 * @throws Exception
	 */
	public List<Map<String,Object>> getHomeWorkByClass(Map<String, Object> paramMap) throws Exception;
	
	/**
	 * @description 查询某教师教的课程的某班级的实验详情情况（实验管理列表内页）
	 * @param Map<String,Object> paramMap
	 * @return List 
	 * @throws Exception
	 */
	public List<Map<String,Object>> getTestByClass(Map<String, Object> paramMap) throws Exception;
	
	/**
	 * @description 评价作业
	 * @param Map<String,Object> paramMap
	 * @return boolean true成功  false失败 
	 * @throws Exception
	 */
	public void assessHomeworkTest(Map<String, Object> paramMap) throws Exception;
	
	/**
	 * @description 添加作业或实验
	 * @param Map<String,Object> paramMap
	 * @return boolean true成功  false失败 
	 * @throws Exception
	 */
	public void addTask(Map<String, Object> paramMap) throws Exception;
	
	/**
	 * @description 通过学号和课程号获取此学生课程中每章节的分数
	 * @param Map<String,Object> paramMap
	 * @return List 
	 * @throws Exception
	 */
	public List<Map<String,Object>> getEverySourceByCourseAndSid(Map<String, Object> paramMap) throws Exception;
	
	/**
	 * @description 查询某学生某课程的 总分数
	 * @param Map<String,Object> paramMap 学号  课程号
	 * @return 
	 * @throws Exception
	 */
	public Map<String,Object> getMyDegreeByCourse(Map<String, Object> paramMap) throws Exception;
	
	/**
	 * @description 为某学生某课程添加平时成绩信息
	 * @param Map<String,Object> paramMap 学号  课程号  成绩
	 * @return 
	 * @throws Exception
	 */
	public void addMyNormalDegree(Map<String, Object> paramMap) throws Exception;
	
	/**
	 * @description 为某学生修改某课程平时成绩信息
	 * @param Map<String,Object> paramMap 学号  课程号  成绩
	 * @return 
	 * @throws Exception
	 */
	public void saveMyNormalDegree(Map<String, Object> paramMap) throws Exception;
	
	/**
	 * @description 查询是否有这个学生与这个课程对应的信息
	 * @param Map<String,Object> paramMap 学号  课程号  成绩
	 * @return 
	 * @throws Exception
	 */
	public Map<String,Object> getMyNormalDegreeMessage(Map<String, Object> paramMap) throws Exception;

	/**
	 * @description 查询某个学生某个课程对应的所有分数总和 
	 * @param Map<String,Object>  学号  课程号
	 * @return 
	 * @throws Exception
	 */
	public Map<String,Object> getStuProfomaceGrade(Map<String, Object> paramMap) throws Exception;
	
	/**
	 * @description 查询有没有学生与课程的对应信息
	 * @param Map<String,Object>  学号  课程号
	 * @return 
	 * @throws Exception
	 */
	public List<Map<String,Object>> getStuReCourseExam(Map<String, Object> paramMap) throws Exception;
	
	/**
	 * @description 添加学生平时分数信息
	 * @param Map<String,Object>  学号  课程号 分数
	 * @return 
	 * @throws Exception
	 */
	public void addStuReCourseExam(Map<String, Object> paramMap) throws Exception;
	
	/**
	 * @description 修改学生平时分数信息
	 * @param Map<String,Object>  学号  课程号 分数
	 * @return 
	 * @throws Exception
	 */
	public void saveStuReCourseExam(Map<String, Object> paramMap) throws Exception;
	
	/**
	 * @description 查询某学生在某课程某章节位置是否交过作业
	 * @param Map<String,Object>  学号  课程号 章节号
	 * @return 
	 * @throws Exception
	 */
	public List<Map<String, Object>> selectMyHomework(Map<String, Object> paramMap) throws Exception;
	
	/**
	 * @description 修改某个学生某课程某章节作业
	 * @param Map<String,Object>  学号  课程号 章节号，作业名
	 * @return 
	 * @throws Exception
	 */
	public void saveTask(Map<String, Object> paramMap) throws Exception;
	
	/**
	 * @description 获取某个课程某个章节的作业或实验列表
	 * @param Map<String,Object>    课程号 章节号
	 * @return 
	 * @throws Exception
	 */
	public List<Map<String, Object>> getCourseChapterTask(Map<String, Object> paramMap) throws Exception;

	/**
	 * @description 查询这个学生与这个课程的关联关系信息类型
	 * @param Map<String,Object>    
	 * @return 
	 * @throws Exception
	 */
	public Map<String, Object> getRelationMark(Map<String, Object> paramMap) throws Exception;
	
	/**
	 * @description 删除某个班级下所有学生的关于这个课的作业试验信息
	 * @param Map<String,Object> 课id  班级id
	 * @return 
	 * @throws Exception
	 */
	public void delTaskByCourseIdAndClassId(Map<String, Object> paramMap) throws Exception;
	
	/**
	 * @description 删除这个班级下的学生的这个课的成绩
	 * @param Map<String,Object> 课id  班级id
	 * @return 
	 * @throws Exception
	 */
	public void delExamByClassIdAndCourseId(Map<String, Object> paramMap) throws Exception;
	
	/**
	 * @description 删除这个班级下的学生的学习历史信息，
	 * @param Map<String,Object> 课id  班级id
	 * @return 
	 * @throws Exception
	 */
	public void delClassStudyHistoryByCourseId(Map<String, Object> paramMap) throws Exception;
	
}
